1. Field of the Invention
The present invention relates to distributed processing systems. More particularly, the invention concerns a system for processing a computer executable task by dividing it into subtasks and distributing the subtasks "on demand" to remotely located "subscribing" computers via the public Internet, a corporate Internet, or another computer network. Application programs running on the subscribing computers obtain subtasks from a coordinating computer "on demand," manage execution of the obtained subtasks during idle processing time of the subscribing computer, and submit processing results back to the coordinating computer.
2. Description of the Related Art
Along with the exploding computing capacity of today's computers, people are developing computing projects of similarly exploding complexity. Typical personal computers handily satisfy most business needs, such as word processing, database management, internet access, e-mail, and the like. Buoyed by the prospect of computer models, however, mathematicians, engineers, and other scientists are designing incredibly massive computing projects beyond the scope of personal computers. To suit these needs, manufacturers are developing computing platforms of increasing power. Computer "workstations," for example, provide significantly more computing power than personal computers. Even more powerful than workstations are mainframe computers, many of which are manufactured by INTERNATIONAL BUSINESS MACHINES CORP. ("IBM"). Even more powerful than mainframe computers are supercomputers, such as CRAY computers manufactured by Silicon Graphics Corporation. Many applications involving complex or massive computing tasks simply cannot be performed with anything less than a supercomputer. Some projects suitable for mainframes or supercomputers include weather simulation, aircraft modeling and testing, sophisticated graphics rendering, DNA matching, financial analysis, distributed internet crawling, etc.
For many users, however, the purchase or lease of a supercomputer or mainframe computer is difficult and/or financially impractical. Mainframe computers can cost hundreds of thousands, or even millions of dollars. And, supercomputer time is competitively awarded to applicants based upon detailed research proposals, still requiring a substantial cost to the user. Nonetheless, the work of many people still integrally involves complicated computing tasks that demand the higher computing power of a mainframe or supercomputer.
In stark contrast to this pronounced need for computing power, many businesses own tens of thousands of computers that remain idle for a significant portion of time during off-hours, weekends, and holidays. Idle computers can certainly also be found in government offices and individual homes, as well. Therefore, a tremendous amount of computing resources, such as CPU cycles and communication bandwidth, is being wasted on a daily basis.
Although known computing systems such as those mentioned above may serve their intended purposes well, there exists a great imbalance between the unsatisfied computing tasks on one hand, and the idle computing resources on the other. Consequently, known systems are not completely adequate from the standpoint of efficiency.